﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _62new关键字覆盖
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            //方法也是一样的,覆盖通过什么类型调就调什么类型的方法

            A b = new B();//父类引用指向子类对象的时候
            b.Test(); //ATest  //覆盖各调各的
            b.Fun();//BFun  //重写不管什么情况都是调用子类的方法
        }
    }

    internal class A
    {
        public virtual void Test()
        {
            Console.WriteLine("ATest");
        }

        public virtual void Fun()
        {
            Console.WriteLine("AFun");

            string
        }
    }
    internal class B : A
    {
        public new void Test()//覆盖A中的Test
        {
            Console.WriteLine("BTest");
        }

        public override void Fun()//重写A中的Fun
        {
            Console.WriteLine("BFun");
        }
    }
}